package com.founder.cebxkit;

public class CEBXKitWrapper {
	// 用于XTK_Initialize和XTK_Destory的type参数
	public static final int XTK_VERSION_STANDARD = 1;
	public static final int XTK_VERSION_PROFESSIONAL = 2;
	public static final int XTK_VERSION_ULTIMATE = 3;

	// 用于CEBXVersionDescription的ver参数
	public static final int XTK_DOCFORMAT_CEBXFULL = 1;
	public static final int XTK_DOCFORMAT_CEBX_A = 2;
	public static final int XTK_DOCFORMAT_CEBX_M = 3;
	
	// 页面区域类型
	public static final int XTK_PAGEBOX_PHYSICALBOX = 1;
	public static final int XTK_PAGEBOX_APPLICATIONBOX = 2;
	public static final int XTK_PAGEBOX_CONTENTBOX = 3;
	public static final int XTK_PAGEBOX_BLEEDBOX = 4;
	
	// 字符集类型
	public static final int XTK_CHARSET_ANSI		= 0;
	public static final int XTK_CHARSET_SHITJIS		= 128;	// SHIFTJIS_CHARSET, 日文
	public static final int XTK_CHARSET_JOHAB		= 130;	// JOHAB_CHARSET, 韩文
	public static final int XTK_CHARSET_GB			= 134;
	public static final int XTK_CHARSET_BIG5		= 136;
	
	/**
	 * 初始化CEBX Toolkit。
	 * @param type			CEBX SDK版本。
	 * @param resDir		资源所在路径。
	 * @param workingDir	工作路径。
	 * @return
	 */
	public native boolean XTK_Initialize(int type, String resDir, String workingDir);
	
	/**
	 * 释放CEBX Toolkit。
	 * @param type
	 * @return
	 */
	public native boolean XTK_Destory(int type);
	
	/**
	 * 设置字体名字到字体文件的对应关系，调用该接口后将影响相应字体的显示。
	 * @param fontFaceName	字体名字。
	 * @param fontFilePath	字体文件的路径。
	 * @return
	 */
	public native boolean XTK_RegisterFontFaceName(String fontFaceName, String fontFilePath);
	
	/**
	 * 获取CEBX文件中包含的文档个数。
	 * @param filePath
	 * @return
	 */
	public native int XTK_GetDocumentCount(String filePath);
	
	/**
	 * 获取CEBX文档的版本。
	 * @param filePath
	 * @param ver
	 * @return
	 */
	public native boolean XTK_GetCEBXVersion(String filePath, CEBXVersionDescription ver);
	
	/**
	 * 打开文档。
	 * @param filePath
	 * @param docIndex
	 * @return
	 */
	public native long XTK_OpenDoc(String filePath, int docIndex);
	
	/**
	 * 关闭文档。
	 * @param handle
	 * @return
	 */
	public native boolean XTK_CloseDoc(long handle);
	
	/**
	 * 获取文档坐标单位，返回值是1文档单位所代表的毫米数。
	 * @param handle
	 * @return
	 */
	public native float XTK_GetDocUnit(long handle);
	
	/**
	 * 获取文档的页数。
	 * @param handle
	 * @return
	 */
	public native long XTK_GetPageCount(long handle);
	
	/**
	 * 设置显示使用的默认字体名字，对于不存在的字体，绘制时将使用该默认字体。
	 * @param handle				CEBX文档句柄。
	 * @param defaultFontFaceName	字体名字。
	 * @param charset				字体编码。
	 * @return
	 */
	public native boolean XTK_SetDefaultFontFaceName(long handle, String defaultFontFaceName, int charset);

	/**
	 * 获取指定页面区域。
	 * @param handle
	 * @param pagenum
	 * @param pageBoxType
	 * @param pageRect
	 * @return
	 */
	public native boolean XTK_GetPageBox(long handle, long pagenum, int pageBoxType, CxRect pageRect);

	/**
	 * 获取页面位图。
	 * @param handle
	 * @param pagenum
	 * @param xScale
	 * @param yScale
	 * @param bitmapInfo
	 * @return
	 */
	public native byte[] XTK_GetPageBitmap(long handle, long pagenum, double xScale, double yScale, CxBitmapInfo bitmapInfo);
}
